<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
        1. 在业务中一般用于在条件满足时执行（异步）。
        2.上一个promised对象的 resolve(参数)，传递给then((参数)=>{})回调函数的参数
        3. then(()=>{})，他是被上一个回调函数中返回的Promise中的 resolve() 触发的
        4. then(()=>{})，回调函数，默认返回一个promise对象，手动返回也行。返回的promise会作为then()方法的返回值
      */
      const p = new Promise(function (resolve, reject) {
        resolve(1);
      });
      p.then((data) => {
        console.log("then", 2);
        return new Promise((resolve) => {
          resolve("aaa");
        });
      })
        .then((data) => {
          console.log("then", 3, data);
          return new Promise((resolve) => {
            resolve("bbb");
          });
        })
        .then((data) => {
          console.log("then", 4, data);
        });
    </script>
  </body>
</html>
